#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define  NUM 10

void stat(int count[],int score[]);//定义函数
void print(int count[]);

int main()
{
    int grade;
    int score[39];//定义数组 方便在后续函数中被调用
    int count[NUM] = {0}; // 将数组count的值全部赋值为0
    stat(count,score);//注意在调用函数的时候只要写数组名称
    print(count);
    return 0;
}

void stat(int count[],int score[])
{
    int i,j;
    srand(time(NULL)); // 设置时间种子，保证输出随机数
    for (i = 0; i <= 39; i++)
    {
        score[i] = rand() % 10 + 1; // 将随机生成的40个数字存储到数组中
    }
    for(i=0;i<=39;i++)
    {
        switch (score[i])    //可能的简化方法将选择以循环的方式进行引入变量
        {
        case 1:
            count[0]++;
            break;
        case 2:
            count[1]++;
            break;
        case 3:
            count[2]++;
            break;
        case 4:
            count[3]++;
            break;
        case 5:
            count[4]++;
            break;
        case 6:
            count[5]++;
            break;
        case 7:
            count[6]++;
            break;
        case 8:
            count[7]++;
            break;
        case 9:
            count[8]++;
            break;
        case 10:
            count[9]++;
            break;
        }
    }
    /*for(j=0;j<=9;j++)
    {
        printf("%d\n",count[j]);  //检验统计是否正确
    }
    return;*/

}

void print(int count[])//打印列表格式
{
    int i, j, k;
    printf("Grade   Count\t\tHistogram\n");
    for (i = 0; i < NUM; i++)
    {
        printf("%d\t%d\t\t", i + 1, count[i]);//遍历数组与前面的grade具有数量上的关系不需要再设置变量
        for (j = 0; j < count[i]; j++)
        {
            printf("*");
        }
        printf("\n");
    }
    printf("\n");
    return;
}